#ifndef xcurses_h__20130914_1802_39
#define xcurses_h__20130914_1802_39

#include <memory>
#include "factory.h"
using std::shared_ptr;
using std::weak_ptr;
using std::unique_ptr;

class Window;

class Terminal {
public:
  friend class Factory<Terminal>;
  static Factory<Terminal> create;
  ~Terminal();
protected:
  Terminal();
  Terminal(bool use_cdk_colormap);
private:
  struct P;
  unique_ptr<P> p;
  weak_ptr<Terminal> self_;
};


#endif//xcurses_h__20130914_1802_39
